Communication networks have migrated from using specialized networking equipment executing on dedicated hardware, like routers, firewalls, and gateways, to software defined networks (SDNs) executing as virtualized network functions (VNF) in a cloud infrastructure. Network control is directly programmable and the underlying infrastructure is virtualized and abstracted from network services and functions. The ensemble of entities that may comprise a service—VNFs, VNF components (VFCs), virtual machines (VMs), and physical hardware—may dynamically change as the system operates. The complex and dynamic nature of virtualized SDNs makes inventory management a challenging task. An inventory database may facilitate the creation of SDN applications using a modeling language to achieve model-driven networking.
Traditional graph query languages are not designed to query a layered network inventory for discovering connectivity between nodes. For example, Gremlin or SPARQL are not designed to return pathways of varying length. For example, searches for a pathway of length not greater than “five return only pathways of length 5 and searches for “zero or more” steps do not restrict the length. Languages that may support pathways of varying length, such as Cypher, do not provide the ability to add constraints that refer to the extracted pathways. For example, such languages provide inadequate solutions for finding pairs of nodes that are connected via routers of some other time (e.g., a certain pathway does not exist between them).
Further, the outputs of traditional graph query languages are such that an additional query cannot be posed on the results of an original query. For example, some traditional query languages output a graph, while others may output a tuple of values, upon which an additional query cannot be applied.
To facilitate network management, it would be advantageous to query a network inventory to discover specific nodes, connectivity between nodes in some layer, hosting relationships between nodes on different layers, or induced pathways. Traditional query languages do not allow a clear expression of such queries because such queries do not treat pathways as first-class citizens of the language. That is, such query languages are not closed under composition.
There is a need for a technology that facilitates modeling of communication networks, including the types of network elements and the connections therebetween, in such a way that enables querying of that model to enable troubleshooting and creating of SDN applications, including queries for discovering pathways in the network, manipulating pathways, and time-travel queries.
This disclosure is directed to solving one or more of the problems in the existing technology.